home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Grab Bag
/
Shareware Grab Bag.iso
/
090
/
cmln0386.arc
/
CROSSTH2.LTG
< prev
next >
Wrap
Text File
|
1986-03-03
|
1KB
|
40 lines
Listing 2.
Simulating records containing multi-type data, using QuickBASIC.
' Function to Select Index of an array
DEF SI(MAP$,V$) = VAL(MID$(MAP$,INSTR(MAP$,V$)-3,2))
' Funtion to select type of data
DEF DATATYPE$(MAP$,V$) = VAL(MID$(MAP$,INSTR(MAP$,V$)-1,1))
SUB INITIALIZE(MAP$, REC$(), ATOM$, VALENCE%, ATOMIC.WEIGHT)
' DATA TYPE CODES: S = STRING, I = INTEGER, R = REAL, L = DOUBLE REAL
MAP$ = "01S<ELEMENT>02I<VALENCE>03R<ATOMIC.WEIGHT>04R<EQUIVALENT.WEIGHT>"
REC$(SI(MAP$,"<ELEMENT>")) = ATOM$
REC$(SI(MAP$,"<VALENCE>")) = MKI$(VALENCE%)
REC$(SI(MAP$,"<ATOMIC.WEIGHT>")) = MKS$(ATOMIC.WEIGHT)
END SUB
SUB CALC(MAP$,REC$())
' Subroutine to calculate equivalent weight of a chemical atom
' Map data to local variables
ATOM$ = REC$(SI(MAP$,"<ELEMENT>"))
A$ = REC$(SI(MAP$,"<VALENCE>")) : VALENCE = CVI$(A$)
A$ = REC$(SI(MAP$,"<ATOMIC.WEIGHT>")) : AW = CVS$(A$)
' Calculate sought item
EQUIVALENT.WEIGHT = AW / VALENCEè
PRINT ATOM$;"has an equivalent weight = ";EQUIVALENT.WEIGHT
' Assign result to proper string
REC$(SI(MAP$,"<EQUIVALENT.WEIGHT>")) = MKS$(EQUIVALENT.WEIGHT)
END SUB